package com.yanqu.road.entity.activity.cat;

import com.yanqu.road.entity.FieldTypeAnnotation;

import java.util.HashMap;
import java.util.Map;

public class GameData {

    //主角血量
    private long roleBlood;

    //主角位置
    private int roleX;

    //主角位置
    private int roleY;

    //总回合
    private int allRound;

    //当前回合
    private int round;

    //1：普通；2：困难
    private int difficulty;

    //当前关卡
    private int pass;

    //boss血量
    private long bossBlood;

    //怒气
    private int angerBar;

    //伤害
    private long damage;

    //是否结算
    private boolean settle;

    //开局时间
    private long startTime;

    //所有连接数
    private int allConnect;

    //主角技能累计攻击（对boss）
    private long skillDamage;

    //小怪攻击累计(对boss)
    private long monsterDamage;

    //是否杀过沉默小怪
    private boolean killSilent;

    //v5.3
    //多个时需要缓存
    //boss形象
    private String bossId = "";
    //达摩颜色
    private String dharma = "";

    @FieldTypeAnnotation(desc = "主角扣血分布")
    private Map<Integer, Integer> roleBloodLose = new HashMap<>();

    @FieldTypeAnnotation(desc = "小怪技能释放次数")
    private Map<Integer, Integer> monsterSkill = new HashMap<>();

    public boolean isEnd(){
        if(roleBlood <=0 || bossBlood <= 0 || allRound - round <= 0){
            return true;
        }
        return false;
    }

    public boolean isWin(){
        if(roleBlood > 0 && allRound - round >= 0 && bossBlood <= 0){
            return true;
        }
        return false;
    }

    public long getRoleBlood() {
        return roleBlood;
    }

    public void setRoleBlood(long roleBlood) {
        this.roleBlood = roleBlood;
    }

    public int getRoleX() {
        return roleX;
    }

    public void setRoleX(int roleX) {
        this.roleX = roleX;
    }

    public int getRoleY() {
        return roleY;
    }

    public void setRoleY(int roleY) {
        this.roleY = roleY;
    }

    public int getAllRound() {
        return allRound;
    }

    public void setAllRound(int allRound) {
        this.allRound = allRound;
    }

    public int getRound() {
        return round;
    }

    public void setRound(int round) {
        this.round = round;
    }

    public int getDifficulty() {
        return difficulty;
    }

    public void setDifficulty(int difficulty) {
        this.difficulty = difficulty;
    }

    public int getPass() {
        return pass;
    }

    public void setPass(int pass) {
        this.pass = pass;
    }

    public long getBossBlood() {
        return bossBlood;
    }

    public void setBossBlood(long bossBlood) {
        this.bossBlood = bossBlood;
    }

    public int getAngerBar() {
        return angerBar;
    }

    public void setAngerBar(int angerBar) {
        this.angerBar = angerBar;
    }

    public long getDamage() {
        return damage;
    }

    public void setDamage(long damage) {
        this.damage = damage;
    }

    public boolean isSettle() {
        return settle;
    }

    public void setSettle(boolean settle) {
        this.settle = settle;
    }

    public long getStartTime() {
        return startTime;
    }

    public void setStartTime(long startTime) {
        this.startTime = startTime;
    }

    public int getAllConnect() {
        return allConnect;
    }

    public void setAllConnect(int allConnect) {
        this.allConnect = allConnect;
    }

    public long getSkillDamage() {
        return skillDamage;
    }

    public void setSkillDamage(long skillDamage) {
        this.skillDamage = skillDamage;
    }

    public long getMonsterDamage() {
        return monsterDamage;
    }

    public void setMonsterDamage(long monsterDamage) {
        this.monsterDamage = monsterDamage;
    }

    public Map<Integer, Integer> getRoleBloodLose() {
        return roleBloodLose;
    }

    public void setRoleBloodLose(Map<Integer, Integer> roleBloodLose) {
        this.roleBloodLose = roleBloodLose;
    }

    public Map<Integer, Integer> getMonsterSkill() {
        return monsterSkill;
    }

    public void setMonsterSkill(Map<Integer, Integer> monsterSkill) {
        this.monsterSkill = monsterSkill;
    }

    public boolean isKillSilent() {
        return killSilent;
    }

    public void setKillSilent(boolean killSilent) {
        this.killSilent = killSilent;
    }

    public String getBossId() {
        return bossId;
    }

    public void setBossId(String bossId) {
        this.bossId = bossId;
    }

    public String getDharma() {
        return dharma;
    }

    public void setDharma(String dharma) {
        this.dharma = dharma;
    }
}
